package ar.edu.unsam.algo2.tp2.partido

import ar.edu.unsam.algo2.tp2.partido.administrador.Calificacion
import ar.edu.unsam.algo2.tp2.partido.administrador.Propuesta
import org.junit.Assert
import org.junit.Test

class TestAdministrador extends TestInicializar{

	@Test
	def testAgregarPropuesta() {
		Assert::assertEquals(false, administrador.pendientes.contains(propuesta))
		propuesta = new Propuesta
		Assert::assertEquals(true, administrador.pendientes.contains(propuesta))
	}

	@Test
	def testAgregarCalificacion() {
		Assert::assertEquals(false, administrador.pendientes.contains(calificacion))
		calificacion = new Calificacion
		Assert::assertEquals(true, administrador.pendientes.contains(calificacion))
	}

	@Test
	def testRechazarCalificacion() {
		calificacion = new Calificacion
		Assert::assertEquals(false, rodrigo.calificacionesRechazadas.contains(calificacion))
		calificacion.jugadorQueCalifica = rodrigo
		calificacion.rechazar
		Assert::assertEquals(true, rodrigo.calificacionesRechazadas.contains(calificacion))
	}

	@Test
	def testRechazarPropuesta() {
		Assert::assertEquals(false, rodrigo.propuestasRechazadas.contains(propuesta))
		propuesta = new Propuesta
		propuesta.jugadorQuePropone = rodrigo
		propuesta.motivo = "Este jugador me cae muy mal"
		propuesta.rechazar
		Assert::assertEquals(true, rodrigo.propuestasRechazadas.contains(propuesta))
	}

	@Test
	def testAceptarPropuesta() {
		propuesta = new Propuesta
		propuesta.nombre = "Pablo"
		propuesta.aceptar
		var Jugador j = propuesta.obtenerJugador
		Assert::assertEquals(j.nombre, "Pablo")
	}

	@Test
	def testAceptarCalificacion() {
		calificacion = new Calificacion
		calificacion.jugadorCalificado = rodrigo
		Assert::assertEquals(false, rodrigo.calificaciones.contains(calificacion))
		calificacion.aceptar
		Assert::assertEquals(true, rodrigo.calificaciones.contains(calificacion))
	}
}
